home *** CD-ROM | disk | FTP | other *** search
/ 1000 Apple LAN Literacy / 1000 Apple LAN Literacy.iso / Apple LAN Literacy / Scrapbook 0 / Scrapbook 0 / background_8802.txt < prev    next >
Text File  |  1989-08-22  |  30KB  |  1,155 lines

  1. -- background: 8802 from stack: in
  2. -- bmap block id: 9085
  3. -- flags: 4000
  4. -- background id: 0
  5. -- name: Notebook
  6. ----- HyperTalk script -----
  7. on openbackground
  8.   global wherewecamefrom
  9.  
  10.   if wherewecamefrom is empty then
  11.     set icon of bg btn "return" to 27451 -- gray
  12.     set autohilite of bg btn "return" to false
  13.   else
  14.     set icon of bg btn "return" to 4250
  15.     set autohilite of bg btn "return" to true
  16.   end if
  17.  
  18. end openbackground
  19.  
  20. -- This is a special version of this handler that needs to be in the
  21. -- background so Hypercard can find the SSDialog in the bg script
  22. -- from the Scrapbook as well.
  23.  
  24. on doSS
  25.   lock screen
  26.   --  push card
  27.   --  set lockmessages to true
  28.   --  go stack "Student Scrapbook"
  29.   --  if the result is "cancel" then popBack
  30.   -- call with Literacy, ANP, or Administration from courses *!*
  31.   put SSDialog("Scrapbook") into command
  32.   --  pop card
  33.   unlock screen
  34.   --  set lockmessages to false
  35.   --  checkBookmark
  36.   -- Don't use "quit" -- potential conflicts with home scripts
  37.   if command = "quit" then put SSQuit into command
  38.   if command = "Cancel" then exit doSS
  39.   else do command
  40. end doSS
  41.  
  42. -- This is the dialog called from other stacks.  Parameter "caller"
  43. -- indicates whether this came from a course or the
  44. -- scrapbook itself, so we'll know whether to disable certain items.
  45. --
  46. function SSDialog caller
  47. global useSS,course
  48.  
  49. setWindow 1
  50.  
  51. NewWindow 232,296,centered,0,2,"SS Dialog",visible
  52.  
  53. NewItem picture,0,0,232,296,30078 -- item 1
  54.  
  55. if caller = "Scrapbook" or not useSS then
  56.   NewItem RectButton,25,72,81,120,NotActive, 10798,"dontinvert","Bookmark",noColor,"","" -- Bookmark, item 2
  57. else
  58.   NewItem RectButton,25,72,81,120,Active, 21471,"invert","Bookmark",noColor,"","" -- Bookmark, item 2
  59. end if
  60.  
  61. if caller = "Scrapbook" or caller = "Snapshot" or not useSS then
  62.   NewItem RectButton,92,72,143,120,InActive, 12864,"dontinvert","Note",noColor,"","" -- Note, item 3
  63. else
  64.   NewItem RectButton,92,72,143,120,Active, 24100,"invert","Note",noColor,"","" -- Note, item 3
  65. end if
  66.  
  67. if caller = "Scrapbook" or caller = "Snapshot" or not useSS then
  68.   NewItem RectButton,154,72,205,120,NotActive, 13842,"dontinvert","Snapshot",noColor,"","" -- Snapshot, item 4
  69. else
  70.   NewItem RectButton,154,72,205,120,Active, 25338,"invert","Snapshot",noColor,"","" -- SnapShot,  Item 4
  71. end if
  72.  
  73. if useSS then
  74.   NewItem RectButton,28,131,79,179,Active, 4784,"invert","Index",noColor,"","" -- Index, Item 5
  75. else
  76.   NewItem RectButton,28,131,79,179,inActive, 16776,"dontinvert","Index",noColor,"","" -- Index, Item 5
  77. end if
  78.  
  79. if useSS then
  80.   NewItem RectButton,92,131,143,179,Active, 31126,"invert","Scrapbook",noColor,"","" -- Scrapbook Cover, Item 6
  81. else
  82.   NewItem RectButton,92,131,143,179,inActive, 15844,"dontinvert","Scrapbook",noColor,"","" -- Scrapbook Cover, Item 6
  83. end if
  84.  
  85. NewItem RectButton,154,131,205,179,Active, 27938,"invert","Glossary",noColor,"","" -- Glossary, Item 7
  86.  
  87. NewItem RectButton,25,190,81,238,Active, 27012,"invert","Search",noColor,"",""-- search, item 8
  88.  
  89. if course then
  90.   NewItem RectButton,92,190,143,238,Active, 26827,"invert","Map",noColor,"","" -- Map, item 9
  91. else
  92.   NewItem RectButton,92,190,143,238,inActive, 16210,"dontinvert","Map",noColor,"","" -- Map, item 9
  93. end if
  94.  
  95. if course then
  96.   NewItem RectButton,154,190,205,238,Active, 6388,"invert","MainMenu",noColor,"","" -- MainMenu, item 10
  97. else
  98.   NewItem RectButton,154,190,205,238,inActive, 20917,"dontinvert","MainMenu",noColor,"","" -- MainMenu, item 10
  99. end if
  100.  
  101. NewItem RectButton,123,264,123+80,264+14, Active,-1,"invert","Quit",noColor,"","" -- Quit, item 11
  102.  
  103. NewItem RectButton,29,264,29+80,264+14, active,-1,"invert","Cancel",noColor,"","" -- Cancel, item 12
  104.  
  105. set cursor to arrow
  106. get  Display (180,1 )
  107. if it = "timeout" then
  108.   killWindow
  109.   return "cancel"
  110. end if
  111.  
  112. put (item 4 of it) into command
  113. if last char of command is "‚Ķ" then delete last char of command
  114.  
  115. -- clean up
  116. killWindow
  117.  
  118. return command
  119. end SSDialog
  120.  
  121.  
  122. -- This handler gets called from all stacks.
  123. function makeNote
  124. global identifier
  125.  
  126. put the short date && the long time into dateTime
  127.  
  128. setWindow 1
  129.  
  130. NewWindow 290,309,centered,0,1,"Note",visible
  131.  
  132. put "Student Services" & return & "Note" into theText
  133. NewItem StaticText,59,3+3,192,45+3,theText, garamond,18,bold -- Item 1
  134.  
  135. NewItem RectButton,17,8,61,45,NotActive, 24100,"dontinvert",empty,noColor,"","" -- Note icon,  Item 2
  136.  
  137. NewItem Rectangle,0,53,290,54,1 -- Item 3
  138.  
  139. NewItem StaticText,24,57+3,157,76+3, "Identifier:",Chicago,12,plain --  Item 4
  140.  
  141. NewItem StaticText,27,74+3,260,90+3,Identifier, Chicago,12,plain -- Item 5
  142.  
  143. NewItem Rectangle,24,76,268,95,1 --Item 6
  144.  
  145. NewItem StaticText,24,93+3,157,111+3, "Date/Time:",Chicago,12,plain -- Item 7
  146.  
  147. NewItem StaticText,28,110+3,268,126+3, dateTime,Chicago,12,plain -- Item 8
  148.  
  149. NewItem Rectangle,24,112,268,131,1 -- Item 9
  150.  
  151. NewItem StaticText,24,128+3,268,148+3, "Note: (Index Title; then comments)",Chicago,12,plain -- Item 10
  152.  
  153. NewItem EditText,24-1,148,268+1,260, "",Chicago,12,plain,HasScroll,hasCursor -- Item 11
  154.  
  155. NewItem RoundButton,174,269,272,300, "Save",13,noCommand,"" -- Item 12
  156.  
  157. NewItem RoundButton,75,273,165,296, "Cancel",charToNum("."),Command,"" -- Item 13
  158.  
  159. NewItem RectButton,17,270,61,300, Active,1310,"invert",empty,noColor,"",""  -- SS Item 14
  160.  
  161. set cursor to arrow
  162. get Display(180,1)
  163. if it = "timeout" then
  164.   killWindow
  165.   return "cancel"
  166. end if
  167.  
  168. if item 2 of it is 14 then
  169.   killWindow
  170.   return "SS"
  171. end if
  172.  
  173. if item 4 of it is "Cancel" then
  174.   -- clean up
  175.   killWindow
  176.   return "Cancel" -- exit makeNote
  177. end if
  178.  
  179. get GetValue ("Item",11)
  180. -- returns "edittext",the contents
  181. delete item 1 of it
  182. put it into CommentString -- includes commas this way
  183.  
  184. -- clean up
  185. killWindow
  186. set cursor to watch
  187.  
  188. -- The first card of the bg "notes" is a blank "template" card which
  189. -- is never seen and never deleted.  Each card made goes immediately
  190. -- after it so that the first card will be the most recent (as in
  191. -- the index list.)  Template has GrayPrev showing and GrayNext not.
  192. push card
  193. go cd index
  194. -- strip trailing returns so "list holder" doesn't have empty lines
  195. repeat
  196.   get last char of commentString
  197.   if it = return then delete last char of commentString
  198.   else exit repeat
  199. end repeat
  200.  
  201. if the number of chars of commentString > 30 then
  202.   put char 1 to 30 of commentstring & "‚Ķ" into summary
  203. else
  204.   put CommentString into summary
  205. end if
  206. put "Note " & dateTime & "," & summary & return into temp
  207. put temp after fld "list holder"
  208. createList
  209. go first cd of bg "notes" -- the template card
  210. put the userLevel into saveLevel
  211. set userLevel to 5
  212. doMenu "copy card"
  213. doMenu "paste card" -- so most recent card is at front of section
  214. set cantdelete of this cd to false
  215. set the name of this card to char 1 to 24 of temp
  216. put CommentString into fld "Note"
  217. put identifier into fld "Identifier"
  218. put dateTime into fld "Date/Time"
  219. fixNoteArrows
  220. set userLevel to saveLevel
  221. pop card
  222. return "successful"
  223. end makeNote
  224.  
  225.  
  226. -- this handler is called from all stacks
  227. function makeBookMark
  228. global identifier,whereWeCameFrom
  229.  
  230. put the short date && the long time into dateTime
  231.  
  232. setWindow 1
  233.  
  234. NewWindow 290,212,centered,0,1,"Bookmark Dialog",visible
  235.  
  236. put "Student Services" & return & "Bookmark" into theText
  237. NewItem StaticText,59,3+3,192,45+3,theText,garamond,18,bold -- item 1
  238.  
  239. NewItem RectButton,17,8,61,45, "NotActive",21471,"dontinvert",empty,noColor,"","" --  bookmark item 2
  240.  
  241. NewItem Rectangle,0,53,290,54,1 -- item 3
  242.  
  243. NewItem StaticText,24,57+3,157,76+3, "Identifier:",Chicago,12,plain -- item 4
  244.  
  245. NewItem StaticText,27,74+3,260,90+3, identifier,Chicago,12,plain -- item 5
  246.  
  247. NewItem Rectangle,24,76,268,95,1 -- item 6
  248.  
  249. NewItem StaticText,24,93+3,157,111+3, "Date/Time:",Chicago,12,plain -- item 7
  250.  
  251. NewItem StaticText,27,110+3,268,126+3, dateTime,Chicago,12,plain -- item 8
  252.  
  253. NewItem Rectangle,24,112,268,131,1 -- item 9
  254.  
  255. NewItem StaticText,24,128+3,268,148+3, "Title of Bookmark (for Index):",Chicago,12,plain -- item 10
  256.  
  257. NewItem EditText,24-1,146,268+1,167,empty, Chicago,12,plain,NoScroll,hasCursor -- item 11
  258.  
  259. NewItem RoundButton,174,173,272,204, "Save",13,noCommand,"" -- item 12
  260.  
  261. NewItem RoundButton,75,177,165,200, "Cancel",charToNum("."),Command,"" -- item 13
  262.  
  263. NewItem RectButton,16,175,62,207, Active,1310,"invert",empty,noColor,"","" -- SS item 14
  264.  
  265. set cursor to arrow
  266. get  Display (180,1)
  267. if it = "timeout" then
  268.   delete last item of whereWeCameFrom
  269.   killWindow
  270.   return "cancel"
  271. end if
  272.  
  273. if item 2 of it is 14 then
  274.   delete last item of whereWeCameFrom
  275.   killWindow
  276.   return "SS"
  277. end if
  278.  
  279. if item 4 of it is "Cancel" then
  280.   delete last item of whereWeCameFrom
  281.   -- clean up
  282.   killWindow
  283.   return "Cancel"
  284. end if
  285.  
  286. get  GetValue ("Item",11)
  287. delete item 1 of it
  288. put it into CommentString -- rest of it may include commas
  289.  
  290. -- clean up
  291. killWindow
  292. set cursor to watch
  293.  
  294. push card
  295. if the number of chars of commentString > 30 then
  296.   put char 1 to 30 of commentstring & "‚Ķ" into summary
  297. else
  298.   put CommentString into summary
  299. end if
  300. put "Bookmark " & dateTime & "," & summary & return into temp
  301. put temp after fld "list holder"
  302. createList -- in stack script
  303. go first cd of bg "Bookmarks" -- template
  304. put the userLevel into saveLevel
  305. set userLevel to 5
  306. domenu new card
  307. set userLevel to saveLevel
  308. set cantModify of this cd to false
  309. set the name of this card to char 1 to 24 of temp
  310. put CommentString into fld "Comment"
  311. put identifier into fld "Identifier"
  312. put dateTime into fld "Date/Time"
  313. put last item of whereWeCameFrom into fld pathname
  314. delete last item of whereWeCameFrom
  315. pop card
  316. return "successful"
  317. end makeBookMark
  318.  
  319. -- this handler is called from all stacks
  320. function makeSnapShot
  321. global snapStack,snapFile,scrapFile
  322.  
  323. put 700000 into maxSnapSize --** 700000 for final
  324.  
  325. global identifier,whereWeCameFrom,snapStack
  326.  
  327. put the short date && the long time into dateTime
  328.  
  329. setWindow 1
  330.  
  331. NewWindow 290,250,centered,0,1,"Bookmark Snapshot",visible
  332.  
  333. put "Student Services" & return & "Snapshot" into theText
  334. NewItem StaticText,59,3+3,192,45+3,theText, garamond,18,bold -- item 1
  335.  
  336. NewItem RectButton,17,8,61,45, NotActive,25338,"dontinvert","",noColor,"","" -- SnapShot, item 2
  337.  
  338. NewItem Rectangle,0,53,290,54,1 -- item 3
  339.  
  340. NewItem StaticText,24,57+3,157,76+3, "Identifier:",Chicago,12,plain -- item 4
  341.  
  342. NewItem StaticText,27,74+3,260,90+3, Identifier,Chicago,12,"Note‚Ķ" -- item 5
  343.  
  344. NewItem Rectangle,24,76,268,95,1 -- item 6
  345.  
  346. NewItem StaticText,24,93+3,157,111+3, "Date/Time:",Chicago,12,plain -- item 7
  347.  
  348. NewItem StaticText,28,110+3,268,126+3, dateTime,Chicago,12,plain -- item 8
  349.  
  350. NewItem Rectangle,24,112,268,131,1 -- item 9
  351.  
  352. NewItem StaticText,24,128+3,268,148+3, "Title of Snapshot (for Index):",Chicago,12,plain -- item 10
  353.  
  354. NewItem EditText,24-1,148-1,268+1,165+5, "",Chicago,12,plain,NoScroll,hasCursor -- item 11
  355.  
  356. NewItem RoundButton,178,177,268,199, "Print",chartoNum("P"),Command,"" -- item 12
  357.  
  358. NewItem RoundButton,178-4,210-4,268+4,232+4, "Save",13,noCommand,"" -- item 13
  359.  
  360. NewItem RoundButton,75,210,165,232, "Cancel",charToNum("."),Command,"" -- item 14
  361.  
  362. NewItem RectButton,17,203,61,232, Active,1310,"invert","",noColor,"","" -- SS item 15
  363.  
  364. set cursor to arrow
  365. get  Display(180,1)
  366.  
  367. if item 2 of it is 15 then
  368.   delete last item of whereWeCameFrom
  369.   killWindow
  370.   return "SS"
  371. end if
  372.  
  373. if item 4 of it is "Print" then
  374.   go last item of whereWeCameFrom
  375.   delete last item of whereWeCameFrom
  376.   domenu print card
  377.   --cleanUpSnapshot
  378.   killWindow
  379.   return "Cancel"
  380. end if
  381.  
  382. if item 4 of it is "Cancel" then
  383.   delete last item of whereWeCameFrom
  384.   --cleanUpSnapshot
  385.   killWindow
  386.   return "Cancel"
  387. end if
  388.  
  389. get GetValue("Item",11)
  390. delete item 1 of it
  391. put it into CommentString -- get everything, including commas
  392.  
  393. killWindow
  394.  
  395. set cursor to busy
  396.  
  397. if the number of chars of commentString > 30 then
  398.   put char 1 to 30 of commentstring & "‚Ķ" into summary
  399. else
  400.   put CommentString into summary
  401. end if
  402. put "Snapshot " & dateTime & "," & summary & return into temp
  403.  
  404. put "snapshots" && snapStack into currentSnapStack
  405. get the size of currentSnapStack
  406. if it > maxSnapSize or snapStack = 0 then
  407.   get the diskSpace
  408.   if it < 1400000 then -- two floppies worth
  409.     if it > 800000 then
  410.       answer "Warning: Disk is almost full."
  411.     end if
  412.     if it < 800000 then -- two floppies worth
  413.       answer "Disk is too full for more snapshots."
  414.       return "cancel"
  415.     end if
  416.   end if
  417.  
  418.   -- make new snapshot stack
  419.   get myPathName() -- pathname to this folder
  420.   put it into FolderPath
  421.   put FolderPath &"Snapshots" && snapStack+1 into newFile
  422.   set cursor to busy
  423.   get kCopyFile(snapFile,newFile)
  424.   if char 1 to 2 of it ‚↠"ok" then -- oopsie
  425.     answer "Couldn't make new snapshot stack‚Ķ" && it & "."
  426.     return "cancel"
  427.   end if
  428.   add 1 to snapStack
  429.   put snapStack into cd fld "snapshots" of cd "index"
  430.   if snapStack > 1 then
  431.     go stack ("snapshots" && snapstack-1)
  432.     go last
  433.     hide cd btn "grayNext"
  434.   end if
  435. end if
  436.  
  437. go first cd of stack "snapshots" && snapStack -- template
  438. put the userLevel into saveLevel
  439. set userLevel to 5
  440. set cursor to busy
  441. doMenu copy card
  442. doMenu paste card
  443. -- hide the tab buttons
  444. hide cd btn "cover"
  445. hide cd btn "index"
  446. hide cd btn "notes"
  447. hide cd btn "glossary"
  448. set cantDelete of this cd to false
  449. set the name of this card to char 1 to 24 of temp
  450. get fixSnapArrows()
  451.  
  452. set cursor to busy
  453. go last item of whereWeCameFrom
  454. -- Copy fields and picture
  455. --flash
  456. put the visible of msg into visimsg
  457. put the visible of tool window into visitool
  458. put the visible of pattern window into visipattern
  459. -- hide windoids so picture won't be obscured
  460. hide msg
  461. hide tool window
  462. hide pattern window
  463. hide menuBar -- can't save previous state
  464. unlock screen
  465. unlock screen -- do it twice, since there were two dialog boxes.
  466. lock screen -- force refresh again
  467. put empty into fieldHolder
  468.  
  469. repeat with i = 1 to the number of cd flds
  470.   set cursor to busy
  471.   if the visible of cd fld i then
  472.     put "cd fld id " & the id of cd fld i & "," after fieldHolder
  473.     hide cd fld i
  474.   end if
  475. end repeat
  476.  
  477. repeat with i = 1 to the number of flds
  478.   set cursor to busy
  479.   if the visible of fld i then
  480.     put "fld id " & the id of fld i & "," after fieldHolder
  481.     hide fld i
  482.   end if
  483. end repeat
  484.  
  485. unlock screen
  486. lock screen -- force refresh with fields gone
  487. RectToClip 0,0,512,342
  488. if the number of items in fieldHolder > 0 then
  489.   repeat with i = 1 to the number of items in fieldHolder
  490.     show item i of fieldHolder
  491.   end repeat
  492. end if
  493. set the visible of msg to visimsg
  494. set the visible of tool window to visiTool
  495. set the visible of pattern window to visiPattern
  496. unlock screen
  497. lock screen -- so it looks OK for student again
  498. set cursor to busy
  499.  
  500. go back -- to Snapshot stack
  501. domenu paste picture
  502. -- uncover control panel
  503. choose select tool
  504. drag from 478,71 to 512,342
  505. domenu cut picture
  506. drag from 478,71 to 512,342
  507. domenu transparent
  508. choose browse tool
  509. put last item of whereWeCameFrom into fld "pathname"
  510.  
  511. go last item of whereWeCameFrom
  512. if the number of items in fieldHolder > 0 then
  513.   repeat with i = 1 to the number of items in fieldHolder
  514.     set cursor to busy
  515.     push card -- course card
  516.     show item i of fieldHolder
  517.     select item i of fieldHolder
  518.     domenu copy field
  519.     go back -- to Snapshot stack
  520.     type "v" with commandKey,shiftKey -- paste field & contents
  521.     set the script of cd fld i to empty
  522.     pop card -- back to course
  523.   end repeat
  524. end if
  525.  
  526. go cd "index" of scrapFile
  527. -- put entry into index field
  528. put temp after fld "list holder"
  529. createList
  530.  
  531. go last item of whereWeCameFrom
  532. delete last item of whereWeCameFrom
  533. set userLevel to saveLevel
  534. choose browse tool
  535. return "Successful"
  536. end makeSnapShot
  537.  
  538. on createList
  539.   global SelectedText,SelectLine
  540.  
  541.   set cursor to watch
  542.   put empty into SelectLine
  543.   put empty into SelectedText
  544.  
  545.   if the hilite of btn "By Type" is true then
  546.  
  547.     lock screen
  548.     put empty into fld list
  549.     repeat with i = the number of lines of fld "list holder" down to 1
  550.       if the hilite of btn "bookmarks" is true then
  551.         if word 1 of line i of fld "list holder" is "bookmark" then
  552.           put line i of fld "list holder" & return after fld list
  553.         end if
  554.       end if
  555.     end repeat
  556.  
  557.     repeat with i = the number of lines of fld "list holder" down to 1
  558.       if the hilite of btn "notes" is true then
  559.         if word 1 of line i of fld "list holder" is "note" then
  560.           put line i of fld "list holder" & return after fld list
  561.         end if
  562.       end if
  563.     end repeat
  564.  
  565.     repeat with i = the number of lines of fld "list holder" down to 1
  566.       if the hilite of btn "snapshots" is true then
  567.         if word 1 of line i of fld "list holder" is "snapshot" then
  568.           put line i of fld "list holder" & return after fld list
  569.         end if
  570.       end if
  571.     end repeat
  572.  
  573.   else
  574.     lock screen
  575.     put empty into fld list
  576.     repeat with i = the number of lines of fld "list holder" down to 1
  577.       if the hilite of btn "bookmarks" is true then
  578.         if word 1 of line i of fld "list holder" is "bookmark" then
  579.           put line i of fld "list holder" & return after fld list
  580.         end if
  581.       end if
  582.       if the hilite of btn "notes" is true then
  583.         if word 1 of line i of fld "list holder" is "note" then
  584.           put line i of fld "list holder" & return after fld list
  585.         end if
  586.       end if
  587.       if the hilite of btn "snapshots" is true then
  588.         if word 1 of line i of fld "list holder" is "snapshot" then
  589.           put line i of fld "list holder" & return after fld list
  590.         end if
  591.       end if
  592.     end repeat
  593.   end if
  594.  
  595.   set scroll of fld "list" to 0
  596.   unlock screen with barn door open
  597.  
  598. end createList
  599.  
  600. on retrieveBookmark theCard
  601.   global course,btnStatus,answerTracker
  602.  
  603.   if not course then
  604.     answer "Can't go to bookmark.  Course is not installed."
  605.     exit retrieveBookMark
  606.   end if
  607.  
  608.   -- set lockmessages to true
  609.   lock screen
  610.   go cd theCard
  611.   if the short name of this card is "index" then
  612.     answer "Couldn't find bookmark."
  613.   else
  614.     go fld "pathname"
  615.     put empty into btnStatus
  616.     put empty into answerTracker
  617.     send openCard to this card
  618.     unlock screen with iris open to black
  619.   end if
  620. end retrieveBookMark
  621.  
  622. on retrieveNote theCard
  623.   lock screen
  624.   go cd theCard
  625.   if the short name of this card is "index" then
  626.     answer "Couldn't find note."
  627.   else
  628.     unlock screen with iris open to black
  629.   end if
  630. end retrieveNote
  631.  
  632. on retrieveSnapshot theCard
  633.   global snapStack
  634.  
  635.   set cursor to watch
  636.   lock screen
  637.   push card
  638.   repeat with i = 1 to snapStack
  639.     go stack "Snapshots" && i
  640.     go cd theCard
  641.     if the result ‚↠"no such card" then
  642.       pop card into trash -- stay put
  643.       unlock screen with iris open to black
  644.       exit retrieveSnapshot
  645.     end if
  646.   end repeat
  647.   pop card
  648.   answer "Couldn't find Snapshot."
  649. end retrieveSnapshot
  650.  
  651.  
  652. function deleteSnapStack stackNum
  653. get myPathName()
  654. put "Snapshots" && stackNum after it
  655. put it into deleteThis
  656. put deletefile(deletethis) into returnedthis
  657. return returnedThis
  658. -- returns 0 if ok, < 0 if OsErr, else other error
  659. end deleteSnapStack
  660.  
  661. on makeNewSnapStack
  662.   global SnapStack
  663.  
  664.   get myPathName() -- pathname to this folder
  665.   put it into FolderPath
  666.   put FolderPath &"Snapshots" && snapStack into oldFile
  667.   put FolderPath &"Snapshots" && snapStack+1 into newFile
  668.   get kCopyFile(oldFile,newFile)
  669.   if char 1 to 2 of it ‚↠"ok" then answer it -- oopsie
  670.   add 1 to snapStack
  671.   put snapStack into cd fld "snapshots" of cd "index"
  672. end makeNewSnapStack
  673.  
  674. on goWhere
  675.   global WhereWeCameFrom
  676.  
  677.   if whereWeCameFrom is not empty then
  678.     set lockMessages to true
  679.     lock screen
  680.     set cursor to watch
  681.     go last item of whereWeCameFrom
  682.     set lockMessages to false
  683.     send opencard to this cd --*!* for literacy only
  684.     delete last item of whereWeCameFrom
  685.     unlock screen with visual dissolve
  686.   end if
  687. end goWhere
  688.  
  689. on goSnapshot
  690.   global snapStack,useSS
  691.  
  692.   if not useSS then exit goSnapShot
  693.  
  694.   if snapStack = 0 then
  695.     pop card
  696.     answer "There are no Snapshots."
  697.     exit goSnapshot
  698.   end if
  699.   set cursor to watch
  700.   lock screen
  701.   -- don't lock messages
  702.   go stack "Snapshots 1" -- first stack we made
  703.   if the result is "cancel" then
  704.     pop cd -- go back to caller
  705.     answer "Couldn't find Snapshots."
  706.     exit goSnapshot
  707.   end if
  708.   if (the number of cds of this bg) = 1 then
  709.     pop card
  710.     answer "There are no Snapshots."
  711.     exit goSnapshot
  712.   else
  713.     pop cd into trash
  714.     unlock screen with visual dissolve
  715.   end if
  716. end goSnapshot
  717.  
  718. ----------------------  PROGRAMMER'S UTILITIES ------------------------
  719. on cleanUp
  720.   global snapstack
  721.  
  722.   go cd 1
  723.   put empty into cd fld "hidden name"
  724.   put empty into cd fld "myname"
  725.   put empty into cd fld "gfindWhatHolder"
  726.   go cd 2
  727.   set hilite of cd btn "bookmarks" to true
  728.   set hilite of cd btn "snapshots" to true
  729.   set hilite of cd btn "notes" to true
  730.   get cd fld "snapshots" of cd "index"
  731.   put it into snapStack
  732.   send clearScrapbook to cd btn "delete‚Ķ"
  733.   send "hidesecret" to cd 2
  734.   go cd "glossary"
  735.   clear
  736.   go cd 1
  737.   send mouseUp to cd btn "hide secret"
  738.   doMenu "compact stack"
  739. end cleanUp
  740.  
  741.  
  742.  
  743.  
  744.  
  745. -- part 1 (field)
  746. -- low flags: 00
  747. -- high flags: 0000
  748. -- rect: left=28 top=39 right=58 bottom=146
  749. -- title width / last selected line: 0
  750. -- icon id / first selected line: 0 / 0
  751. -- text alignment: 0
  752. -- font id: 3
  753. -- text size: 12
  754. -- style flags: 0
  755. -- line height: 16
  756. -- part name: title
  757.  
  758.  
  759. -- part 8 (field)
  760. -- low flags: 01
  761. -- high flags: 0001
  762. -- rect: left=23 top=29 right=315 bottom=471
  763. -- title width / last selected line: 0
  764. -- icon id / first selected line: 0 / 0
  765. -- text alignment: 0
  766. -- font id: 156
  767. -- text size: 16
  768. -- style flags: 256
  769. -- line height: 21
  770. -- part name: lines
  771.  
  772.  
  773. -- part 19 (field)
  774. -- low flags: 00
  775. -- high flags: 2007
  776. -- rect: left=30 top=95 right=269 bottom=462
  777. -- title width / last selected line: 0
  778. -- icon id / first selected line: 0 / 0
  779. -- text alignment: 0
  780. -- font id: 156
  781. -- text size: 16
  782. -- style flags: 0
  783. -- line height: 21
  784. -- part name: list holder
  785.  
  786.  
  787. -- part 9 (field)
  788. -- low flags: 01
  789. -- high flags: 0000
  790. -- rect: left=28 top=33 right=69 bottom=234
  791. -- title width / last selected line: 0
  792. -- icon id / first selected line: 0 / 0
  793. -- text alignment: 0
  794. -- font id: 156
  795. -- text size: 24
  796. -- style flags: 256
  797. -- line height: 32
  798. -- part name: title
  799.  
  800.  
  801. -- part 10 (field)
  802. -- low flags: 01
  803. -- high flags: 0007
  804. -- rect: left=30 top=95 right=269 bottom=462
  805. -- title width / last selected line: 0
  806. -- icon id / first selected line: 0 / 0
  807. -- text alignment: 0
  808. -- font id: 156
  809. -- text size: 16
  810. -- style flags: 0
  811. -- line height: 21
  812. -- part name: list
  813. ----- HyperTalk script -----
  814. on mouseDown
  815.   global SelectedText,SelectLine
  816.  
  817.   lock screen
  818.   if me is empty then
  819.     update
  820.     exit to hyperCard
  821.   end if
  822.   set LockText of me to false
  823.   click at the mouseLoc
  824.   put the selectedLine into SelectLine
  825.   set LockText of me to true
  826.   unlock screen
  827.   if the MouseLoc is not within the rect of me then
  828.     put empty into selectedText
  829.     put empty into selectLine
  830.     removeEmptyLines
  831.     update
  832.     exit to hypercard
  833.   end if
  834.   put word 2 of SelectLine into clickLine
  835.   click at 0,0
  836.   removeEmptyLines
  837.   if clickLine > number of lines in me then
  838.     put empty into selectedText
  839.     put empty into selectLine
  840.     click at 0,0
  841.     removeEmptyLines
  842.     update
  843.     exit to HyperCard
  844.   end if
  845.   if the value of selectLine is empty or the value of selectLine is "none." then
  846.     put empty into selectedText
  847.     put empty into selectLine
  848.     click at 0,0
  849.     removeEmptyLines
  850.     update
  851.     exit to hypercard
  852.   end if
  853.  
  854.   set the textfont of btn "retrieve" to chicago
  855.   set the autohilite of btn "retrieve" to true
  856.   set the textfont of btn "delete‚Ķ" to chicago
  857.   set the autohilite of btn "delete‚Ķ" to true
  858.  
  859.   -- This highlights the whole line, or multiple lines if the entry
  860.   -- is too long for one line.
  861.   select char 1 + length(line 1 to clickLine of target) - length (line clickLine of target) to 1 + length(line 1 to clickLine of target) of me
  862.  
  863.   if the selection is empty then
  864.     select empty
  865.     put empty into SelectLine
  866.     put empty into SelectedText
  867.     set the textfont of btn "retrieve" to sydney
  868.     set the autohilite of btn "retrieve" to false
  869.     exit to HyperCard
  870.   end if
  871.  
  872.   put the selection into SelectedText
  873.  
  874.   if the mouseclick then
  875.     if word 1 of SelectedText is "Bookmark" then
  876.       put (char 1 to 24 of the selection) into theCard
  877.       retrieveBookmark theCard
  878.       exit to hyperCard
  879.     end if
  880.  
  881.     if word 1 of SelectedText is "note" then
  882.       put (char 1 to 24 of the selection) into theCard
  883.       retrieveNote theCard
  884.       exit to hyperCard
  885.     end if
  886.  
  887.     -- it's a snapshot, gotta find it
  888.     put (char 1 to 24 of the selection) into theCard
  889.     retrieveSnapshot theCard
  890.   end if
  891. end mouseDown
  892.  
  893. on removeEmptyLines
  894.   repeat with n = the number of lines of fld "list" down to 1
  895.     if line n of fld "list" is empty then
  896.       delete line n of fld "list"
  897.     else
  898.       exit repeat
  899.     end if
  900.   end repeat
  901. end removeEmptyLines
  902.  
  903.  
  904.  
  905. -- part 11 (button)
  906. -- low flags: 00
  907. -- high flags: 2000
  908. -- rect: left=477 top=258 right=284 bottom=509
  909. -- title width / last selected line: 0
  910. -- icon id / first selected line: 4250 / 4250
  911. -- text alignment: 1
  912. -- font id: 0
  913. -- text size: 12
  914. -- style flags: 0
  915. -- line height: 16
  916. -- part name: Return
  917. ----- HyperTalk script -----
  918. on mouseUp
  919.   goWhere
  920. end mouseUp
  921.  
  922.  
  923.  
  924. -- part 12 (button)
  925. -- low flags: 00
  926. -- high flags: 0000
  927. -- rect: left=121 top=317 right=333 bottom=185
  928. -- title width / last selected line: 0
  929. -- icon id / first selected line: 0 / 0
  930. -- text alignment: 1
  931. -- font id: 0
  932. -- text size: 12
  933. -- style flags: 0
  934. -- line height: 16
  935. -- part name: Index
  936. ----- HyperTalk script -----
  937. on mouseUp
  938.   if the short name of this cd = "index" then exit mouseUP
  939.   visual dissolve
  940.   go cd 2
  941. end mouseUp
  942.  
  943.  
  944.  
  945. -- part 13 (button)
  946. -- low flags: 00
  947. -- high flags: 0000
  948. -- rect: left=36 top=315 right=331 bottom=100
  949. -- title width / last selected line: 0
  950. -- icon id / first selected line: 0 / 0
  951. -- text alignment: 1
  952. -- font id: 0
  953. -- text size: 12
  954. -- style flags: 0
  955. -- line height: 16
  956. -- part name: Cover
  957. ----- HyperTalk script -----
  958. on mouseUp
  959.   if the short name of this cd is "Scrapbook cover" then exit mouseUP
  960.   visual dissolve
  961.   go first
  962. end mouseUp
  963.  
  964.  
  965.  
  966. -- part 14 (button)
  967. -- low flags: 00
  968. -- high flags: 0000
  969. -- rect: left=206 top=319 right=335 bottom=270
  970. -- title width / last selected line: 0
  971. -- icon id / first selected line: 0 / 0
  972. -- text alignment: 1
  973. -- font id: 0
  974. -- text size: 12
  975. -- style flags: 0
  976. -- line height: 16
  977. -- part name: Notes
  978. ----- HyperTalk script -----
  979. on mouseUp
  980.   if (the number of cds of bg "notes") > 1 then
  981.     visual dissolve
  982.     go cd 2 of bg "notes"
  983.   else
  984.     answer "There are no notes."
  985.   end if
  986. end mouseUp
  987.  
  988.  
  989.  
  990. -- part 15 (button)
  991. -- low flags: 00
  992. -- high flags: 0000
  993. -- rect: left=291 top=321 right=337 bottom=355
  994. -- title width / last selected line: 0
  995. -- icon id / first selected line: 0 / 0
  996. -- text alignment: 1
  997. -- font id: 0
  998. -- text size: 12
  999. -- style flags: 0
  1000. -- line height: 16
  1001. -- part name: Snapshots
  1002. ----- HyperTalk script -----
  1003. on mouseUp
  1004.   push card -- so we can get back if snapshot is missing
  1005.   goSnapShot
  1006. end mouseUp
  1007.  
  1008.  
  1009.  
  1010. -- part 18 (button)
  1011. -- low flags: 00
  1012. -- high flags: 0000
  1013. -- rect: left=376 top=323 right=339 bottom=440
  1014. -- title width / last selected line: 0
  1015. -- icon id / first selected line: 0 / 0
  1016. -- text alignment: 1
  1017. -- font id: 0
  1018. -- text size: 12
  1019. -- style flags: 0
  1020. -- line height: 16
  1021. -- part name: Glossary
  1022. ----- HyperTalk script -----
  1023. on mouseUp
  1024.   set cursor to watch
  1025.   lock screen
  1026.   go cd "glossary"
  1027.   unlock screen with dissolve
  1028. end mouseUp
  1029.  
  1030.  
  1031.  
  1032. -- part 20 (button)
  1033. -- low flags: 00
  1034. -- high flags: 0000
  1035. -- rect: left=493 top=319 right=341 bottom=512
  1036. -- title width / last selected line: 0
  1037. -- icon id / first selected line: 1237 / 1237
  1038. -- text alignment: 1
  1039. -- font id: 0
  1040. -- text size: 12
  1041. -- style flags: 0
  1042. -- line height: 16
  1043. -- part name: next
  1044. ----- HyperTalk script -----
  1045. on mouseUp
  1046.   lock screen
  1047.   go next
  1048.   unlock screen with wipe left
  1049. end mouseUp
  1050.  
  1051.  
  1052.  
  1053. -- part 21 (button)
  1054. -- low flags: 00
  1055. -- high flags: 0000
  1056. -- rect: left=480 top=319 right=341 bottom=497
  1057. -- title width / last selected line: 0
  1058. -- icon id / first selected line: 1238 / 1238
  1059. -- text alignment: 1
  1060. -- font id: 0
  1061. -- text size: 12
  1062. -- style flags: 0
  1063. -- line height: 16
  1064. -- part name: prev
  1065. ----- HyperTalk script -----
  1066. on mouseUp
  1067.   lock screen
  1068.   go prev
  1069.   unlock screen with wipe right
  1070. end mouseUp
  1071.  
  1072.  
  1073.  
  1074. -- part 22 (button)
  1075. -- low flags: 00
  1076. -- high flags: 0000
  1077. -- rect: left=481 top=142 right=172 bottom=510
  1078. -- title width / last selected line: 0
  1079. -- icon id / first selected line: 1310 / 1310
  1080. -- text alignment: 1
  1081. -- font id: 0
  1082. -- text size: 12
  1083. -- style flags: 0
  1084. -- line height: 16
  1085. -- part name: Student Services
  1086. ----- HyperTalk script -----
  1087. on mousedown
  1088.   saveIdentifier
  1089.   SSpopUp
  1090. end mousedown
  1091.  
  1092. on mouseup
  1093.   if the mouseloc is not within the rect of me then exit to hyperCard
  1094.   saveidentifier
  1095.   doSS
  1096. end mouseup
  1097.  
  1098.  
  1099. -- part 23 (button)
  1100. -- low flags: 00
  1101. -- high flags: 2000
  1102. -- rect: left=483 top=176 right=204 bottom=510
  1103. -- title width / last selected line: 0
  1104. -- icon id / first selected line: 162 / 162
  1105. -- text alignment: 1
  1106. -- font id: 0
  1107. -- text size: 12
  1108. -- style flags: 0
  1109. -- line height: 16
  1110. -- part name: Help
  1111. ----- HyperTalk script -----
  1112. on mouseUp
  1113.   help
  1114. end mouseUp
  1115.  
  1116.  
  1117.  
  1118. -- part 28 (button)
  1119. -- low flags: 00
  1120. -- high flags: 2000
  1121. -- rect: left=481 top=297 right=318 bottom=509
  1122. -- title width / last selected line: 0
  1123. -- icon id / first selected line: 1236 / 1236
  1124. -- text alignment: 1
  1125. -- font id: 0
  1126. -- text size: 12
  1127. -- style flags: 0
  1128. -- line height: 16
  1129. -- part name: Index
  1130. ----- HyperTalk script -----
  1131. on mouseUp
  1132.   visual dissolve
  1133.   go cd "Index"
  1134. end mouseUp
  1135.  
  1136.  
  1137.  
  1138. -- part 29 (button)
  1139. -- low flags: 80
  1140. -- high flags: 0000
  1141. -- rect: left=482 top=296 right=318 bottom=509
  1142. -- title width / last selected line: 0
  1143. -- icon id / first selected line: 1235 / 1235
  1144. -- text alignment: 1
  1145. -- font id: 0
  1146. -- text size: 12
  1147. -- style flags: 0
  1148. -- line height: 16
  1149. -- part name: Mask Index
  1150. ----- HyperTalk script -----
  1151. on mouseUp
  1152.   -- doNothing
  1153. end mouseUp
  1154.  
  1155.